Retrospective commit from 2009-12-12.
authorEli Zaretskii <eliz@gnu.org>
Fri, 1 Jan 2010 14:46:25 +0000 (09:46 -0500)
committerEli Zaretskii <eliz@gnu.org>
Fri, 1 Jan 2010 14:46:25 +0000 (09:46 -0500)
commitcf17446d733d3516e86a6d56204d4b7beb67b06b
tree431a4000bc6d15c5445d080c4e185659fd643171
parente630f910276c52896ea2098b9cd97f69eddd5661
Retrospective commit from 2009-12-12.

Begin working on faces support.  First version of handle_stop_backwards.
Rearrange struct bidi_it for more efficient push/pop ops.

 dispextern.h (struct it): New members prev_stop and
 base_level_stop.

 xdisp.c (handle_stop_backwards): New function.
 (next_element_from_buffer): Handle the situation where we
 overstepped stop_charpos due to non-linearity of the bidi
 iteration.  Likewise for when we back up beyond the previous
 stop_charpos.
 (reseat_1, pop_it, push_it): Set prev_stop and base_level_stop.

 dispextern.h (BIDI_AT_BASE_LEVEL): New macro.

 bidi.c (bidi_copy_it): Fix compiler warning due to cast of a
 pointer to `int'.  Don't preserve the first_elt member, as it is
 no longer copied, because its position in the structure was
 changed, see below.

 dispextern.h (struct bidi_it): Move first_elt, new_paragraph,
 separator_limit, and paragraph_dir to after bidi_stack.  Add a
 note that anything beyond the level stack is not preserved when
 the bidi iterator state is copied/saved.
src/ChangeLog.bidi
src/bidi.c
src/dispextern.h
src/xdisp.c